package com.briup.day08;

// 使用static可以指定导入某个类中的静态变量和静态方法

import static com.briup.day08.Order.mian;
import static java.lang.Math.PI;

public class StaticTest {
    /*
    代码块：成员代码块，匿名代码块，是随着类中构造器的执行而执行的代码结构，
    构造器每执行一次，成员代码块就会执行一次，并且成员代码块是先于构造器的执行而执行的
    */ {
        System.out.println("这是匿名成员代码块");
    }

    public StaticTest() {
        System.out.println("这是一个构造器");
    }

    /*
    静态代码块，只会在类被加载的时候，随着类的加载而执行，
    在程序的运行过程中，只会执行一次
     */
    static {
        System.out.println("这是静态代码块的内容");
    }

    public static void main(String[] args) {
        /*
            static作为修饰符，能够修饰哪些内容：
                1、修饰成员变量（对象的属性），将该变量升级为被所有对象
                共有的类变量/静态变量，对象A修改了类变量的值，那么对象B也会受到影响
                2、修饰成员方法，将该方法升级为类方法/静态方法，静态方法
                无需创建对象就可以使用该方法所在类的类名进行调用运行；
                因为需要将该方法所在类加载到方法区中，才能运行这个方法；
                在静态方法中，不能直接使用成员方法和成员变量，如果非要使用，那么
                需要先创建对应的对象，再通过对象进行调用
                3、用于import导入中，实现导入静态的数据
                4、用于修饰代码块，代码块：在Java类中定义的与方法，成员属性，构造器等内容
                平级的结构，你可以将其看作是没有名字的方法
         */
        System.out.println(PI);
        mian();
//        StaticTest staticTest = new StaticTest();
    }
}
